/*
 * NodoAdmin.cpp
 *
 *  Created on: 27/11/2013
 *      Author: matrixlin
 */

#include "NodoAdmin.h"
#include <vector>
#include <string>

using std::vector;
using std::string;

NodoAdmin::NodoAdmin() {
	admin = new vector<NodoCliente>;
	//por default maximo jugadores = 2
	maxPlayers=2;
}

vector<NodoCliente>* NodoAdmin::getVec(){
	return admin;
}

void NodoAdmin::setMaxPlayers(int max) {
maxPlayers=max;}

int NodoAdmin::getMaxPlayers(){
	return maxPlayers;
}

void NodoAdmin::setModelo(HiloModelo* modelo){
	this->modelo=modelo;
	hayDatos=false;
	lanzado=false;
}

void NodoAdmin::setId(int id){
	this->id=id;
}

int NodoAdmin::getNivel(){
	return nivelActual;}

void NodoAdmin::setNivel(int nivel){
	nivelActual=nivel;
}

bool NodoAdmin::getLanzado(){
	return lanzado;
}
void NodoAdmin::setLanzado(bool cond){
	lanzado=cond;
}

bool NodoAdmin::getHayDatos(){
	return hayDatos;
}

void NodoAdmin::setHayDatos(bool valor){
	this->hayDatos=valor;
}


void NodoAdmin::setMensaje(const string& msj){
	datosRecibidos=msj;
}

string NodoAdmin::getMensaje(){
	return datosRecibidos;
}

int NodoAdmin::getId(){
	return id;
}

HiloModelo* NodoAdmin::getModelo() {
	return modelo;
}

int NodoAdmin::getIdClienteMensaje(){
	return idClienteActual;
}

void NodoAdmin::setIdClienteMensaje(int valor){
	 idClienteActual=valor;
}

string NodoAdmin::getUserClienteMensaje(){
	for(vector<NodoCliente>::iterator it1 = admin->begin();
									it1 != admin->end(); ++it1){
		if ((*it1).getId() == getIdClienteMensaje()){
			return (*it1).getNombreUsuario();
		}
	}
	return "";
}

void NodoAdmin::sumarPuntos(int puntos){
	for(vector<NodoCliente>::iterator it1 = admin->begin();
									it1 != admin->end(); ++it1){
		if ((*it1).getId() == getIdClienteMensaje()){
			(*it1).sumarPuntos(puntos);
		}
	}
}

Json::Value NodoAdmin::getVecJsonPuntajes(){
	Json::Value vectorPuntajes(Json::arrayValue);
	Json::Value puntaje(Json::objectValue);
	for(vector<NodoCliente>::iterator it1 = admin->begin();
									it1 != admin->end(); ++it1){
		puntaje["usuario"] = (*it1).getNombreUsuario();
		puntaje["puntos"] = (*it1).getPuntos();
		vectorPuntajes.append(puntaje);
	}
	return vectorPuntajes;
}

int NodoAdmin::getPuntos(){
	for(vector<NodoCliente>::iterator it1 = admin->begin();
									it1 != admin->end(); ++it1){
		if ((*it1).getId() == getIdClienteMensaje()){
			return (*it1).getPuntos();
		}
	}
	return 0;
}
